home *** CD-ROM | disk | FTP | other *** search
- /* cosh.c
- *
- * Hyperbolic cosine
- *
- *
- *
- * SYNOPSIS:
- *
- * double x, y, cosh();
- *
- * y = cosh( x );
- *
- *
- *
- * DESCRIPTION:
- *
- * Returns hyperbolic cosine of argument in the range MINLOG to
- * MAXLOG.
- *
- * cosh(x) = ( exp(x) + exp(-x) )/2.
- *
- *
- *
- * ACCURACY:
- *
- * Relative error:
- * arithmetic domain # trials peak rms
- * DEC 0,2 20000 2.9e-17 8.6e-18
- * IEEE +-MAXLOG 30000 2.6e-16 5.7e-17
- *
- *
- * ERROR MESSAGES:
- *
- * message condition value returned
- * cosh overflow |x| > MAXLOG MAXNUM
- *
- *
- */
-
- /* cosh.c */
-
- /*
- Cephes Math Library Release 2.0: April, 1987
- Copyright 1985, 1987 by Stephen L. Moshier
- Direct inquiries to 30 Frost Street, Cambridge, MA 02140
- */
-
- #include "mconf.h"
- extern double MAXLOG, MAXNUM;
-
- double cosh(x)
- double x;
- {
- double y;
- double exp(), ldexp();
-
- if( x < 0 )
- x = -x;
- if( x > MAXLOG )
- {
- mtherr( "cosh", OVERFLOW );
- return( MAXNUM );
- }
- y = exp(x);
- y = y + 1.0/y;
- y = ldexp( y, -1 );
- return( y );
- }
-